using System;

namespace PropertyExpression.Common
{
    public static class TypeInferencer
    {
        public static Func<TResult> Func<TResult>(Func<TResult> func)
        {
            return func;
        }

        public static Func<T1, TResult> Func<T1, TResult>(Func<T1, TResult> func)
        {
            return func;
        }

        public static Func<T1, T2, TResult> Func<T1, T2, TResult>(Func<T1, T2, TResult> func)
        {
            return func;
        }

        public static Func<T1, T2, T3, TResult> Func<T1, T2, T3, TResult>(Func<T1, T2, T3, TResult> func)
        {
            return func;
        }

        public static Func<T1, T2, T3, T4, TResult> Func<T1, T2, T3, T4, TResult>(Func<T1, T2, T3, T4, TResult> func)
        {
            return func;
        }
    }
}